import {
	BASE_URL,
	TIME_OUT
} from "./config"

class FyRequest {
	BaseUrl
	timeout
	constructor(url, timeout) {
		this.BaseUrl = url
		this.timeout = timeout
	}

	// 响应蓝机器
	// responseInterceptor(response) {
	// 	// // 对我们的响应做出拦截
	// 	// if (response.statusCode === 200) {
	// 	// 	return response.data
	// 	// }
	// 	return response
	// 	// 判断 如果code值 为登录过期 就重写获取 token 或者跳转到登录页面
	// }

	request(config) {
		return new Promise((resolve, reject) => {
			uni.request({
				...config,
				url: this.BaseUrl + config.url,
				method: config.method,
				// header: this.requestInterceptor(config).header,
				data: config.data,
				timeout: this.timeout,
				success(res) {
					resolve(res.data)
				},
				fail(err) {
					resolve(err)
				},
			})
		})
	}

	get(config) {
		return this.request({
			...config,
			method: "GET"
		})
	}

	post(config) {
		return this.request({
			...config,
			method: "POST"
		})
	}

	put(config) {
		return this.request({
			...config,
			method: "PUT"
		})
	}

	delete(config) {
		return this.request({
			...config,
			method: "DELETE"
		})
	}
}
const request = new FyRequest(BASE_URL, TIME_OUT)

uni.addInterceptor('request', {
	invoke(options) {
		options.header = {
			Authorization: `Bearer ${uni.getStorageSync('TOKEN')}`
		}
	},
	success(response) {
		// 只返回 data 字段
		return response
	}
})
export default request